今天分享的是古典電腦視覺
其中台大-電腦視覺這門課的小作業: 影像均值化
我們目標將強度分布不平均的影像做影像均值化,增加影像的對比度。
首先先準備強度分布不平均的lena影像,這步驟非常簡單,把lena中每個pixel value都除以3,然後畫出直方圖。
左邊是原圖lena,右邊是強度分布不平均,亮度較暗的lena。
從直方圖可以看出亮度偏暗,影像上表現出對比度較差,我們想做到的是把影像均值化,產生對比度強的影像。
影像均質化結果:可以看出影像對比度明顯增強。從直方圖可以看到非常明顯的均值分布
實做策略可以分三步驟:
1.計算出累積分布函數CDF(Cumulative Distribution Function)
2.接著參考公式轉換灰階值並做出灰階轉換表.
3.進行灰階值轉換
Code:
Step1:
index = np.zeros([256])
for row in range(512):
for column in range(512):
grayvalue = img[row][column]
index[grayvalue] = index[grayvalue] + 1
cdf = np.zeros([256])
for i in range(256):
if i == 0:
cdf[i] = index[i]
tem = index[i]
else:
tem = tem + index[i]
cdf[i] = tem
step2:
index_2 = np.zeros([256]) #轉換表: index是o~255 灰階 , value是指轉換後的灰階值
for i in range(256):
index_2[i] = int(round(((cdf[i] - 1) / 262143) * 255))
print(index_2)
step3:
print(img)
for i in range(512):
for j in range(512):
value = img[i][j]
img[i][j] = index_2[value]
print(img)
以上為均值化做法